原理介绍
Git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。特别适合于企业级项目的使用,因此也成为了程序员必备技能之一。Git中的大多数语句是Linux语句,因为最初它就是由Linux之父Linus Torvalds帮助管理 Linux 内核开发而开发的。
Git特点
直接记录快照,而非差异比较,速度非常快。
几乎所有操作都是本地执行,方便管理。
时刻保存数据完整性,保证信息的不丢失。
适合于分布式开发,服务器压力小。
开发者之间可以容易的解决冲突。
Git关系图
Git的逻辑较为复杂,一定要理解逻辑图,并记住状态之间的相互转换。
Git应用
创建管理员身份
1 | # git config --global user.name XXX 创建管理员用户名XXX |
将文件夹变成管理库文件夹
1 | # git init 创建管理库文件夹 |
在文件夹中添加文件
1 | # touch xxx 添加文件xxx |
查看文件的状态
1 | # git status 查看文件状态(详细叙述) |
将文件加入文件管理库
1 | # git add xxx 将xxx文件加入文件管理库 |
提交文件
1 | # git commit -m xxx yyy 提交yyy文件到xxx版本中,如果只有xxx,则提交当前所有可提交文件至xxx版本 |
编辑文件
1 | # vim xxx 用vim编辑xxx文件,文件状态由Unmodified变为Modified,再次提交时需要先add变成Staged状态 |
查看之前已提交的更改
1 | # git log 查看文件的具体信息 |
查看之前更改的内容
1 | # git diff 查看Modified与之前提交的区别 |
将文件从Staged状态返回至Modified状态
1 | vim dm01.py # 将dm01状态变为红色的M,即为Modified状态 |
查看每一步的变化
1 | # git reflog 查看对文件夹进行的所有操作,并且可以得到ID号和对应的指针 |
回到过去
1 | # git reset --method HEAD~n 回到前n个版本,method=soft为回滚快照,移动HEAD指向(仓库区域),method=mixed(默认)为将快照回滚到临时区域,method=hard将快照还原到工作区,可以通过打开文件看到 |
创建分支
1 | # git branch 查看所有分支和当前所处分支 |
切换分支
1 | # git checkout xxx 切换到xxx分支 |
删除分支
1 | # git branch -d xxx 删除xxx分支,删除时不能位于该分支,该方法不能删除未合并的分支 |
合并分支
1 | # git merge xxx 在当前分支下,合并xxx分支 |
查看已合并的分支和未合并的分支
1 | # git branch --merged 查看已合并的分支 |
换基操作
1 | # git rebase xxx 当一个分支添加功能时,此时如果主分支发生修改,开发人员想基于修改过的主分支接着添加功能,可以使用换基操作,紧接着xxx之后进行修改 |
暂存区
1 | # git stash 将现在的文件放到暂存区中(分支中存在未提交的文件,无法切换分支。此时可以将现在的文件放到暂存区中,然后切换分支)。 |
链接到GitHub
1 | # 打开GitHub,并新建一个仓库 |
Git三个区域
1 | # 工作区域:存放项目的地方,可以观察到的文件夹即为工作区域,修改的内容可以通过打开文件看到 |
删除文件
1 | # git rm 删除工作区域和临时区域中的文件,但是仓库区域依然可以看到 |
修改文件名
1 | # git mv old_name new_name 将原文件名old_name换为new_name |
Git小结
Git作为当下最红的分布式版本控制系统,使得程序员之间的协作更为方便,因此各大公司都使用Git作为一项必备技能。因为Git的命令大多为Linux语言,所以习惯于Windows平台的用户需要多多练习。